from haystack.indexes import RealTimeSearchIndex
from haystack import site,indexes
from django.contrib.auth.models import User
from comunidadcyt.departamentos.models import Departamentos
from comunidadcyt.lineasDeInvestigacion.models import LineasDeInvestigacion
from comunidadcyt.proyectos.models import Proyectos
from comunidadcyt.partners.models import Partners
from comunidadcyt.gruposDeInvestigacion.models import GruposDeInvestigacion
from comunidadcyt.Eventos.models import Eventos
from comunidadcyt.Publicaciones.models import ReportesTecnicos, Revistas, Libros
from comunidadcyt.Publicaciones.models import  Papers, Tesis, Conferencias


class UserSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    first_name = indexes.CharField(model_attr = 'first_name')
    last_name = indexes.CharField(model_attr = 'last_name')
    
site.register(User,UserSearchIndex)

class DepartmentSearchIndex(RealTimeSearchIndex):
    text = indexes.CharField(document = True,use_template = True)
    Nombre_departamento = indexes.CharField(model_attr = 'Nombre_departamento')
    Descripcion_dpto = indexes.CharField(model_attr = 'Descripcion_dpto')

site.register(Departamentos,DepartmentSearchIndex)

class GroupSearchIndex(RealTimeSearchIndex):
    text = indexes.CharField(document = True,use_template = True)
    Nombre_grupo = indexes.CharField(model_attr = 'Nombre_grupo')
    Descripcion_grupo = indexes.CharField(model_attr = 'Descripcion_grupo')
    
site.register(GruposDeInvestigacion,GroupSearchIndex)

class ProjectSearchIndex(RealTimeSearchIndex):
    text = indexes.CharField(document = True,use_template = True)
    Nombre_proyecto = indexes.CharField(model_attr = 'Nombre_proyecto')
    Descripcion_proyecto = indexes.CharField(model_attr = 'Descripcion_proyecto')
    
site.register(Proyectos,ProjectSearchIndex)

class InvestigationIndex(RealTimeSearchIndex):
    text = indexes.CharField(document = True,use_template = True)
    Nombre_linea = indexes.CharField(model_attr = 'Nombre_linea')
    Descripcion_linea = indexes.CharField(model_attr = 'Descripcion_linea')

site.register(LineasDeInvestigacion,InvestigationIndex)

class PartnerIndex(RealTimeSearchIndex):
    text = indexes.CharField(document = True,use_template = True)
    Nombre_partner = indexes.CharField(model_attr = 'Nombre_partner')
    Descripcion_partner = indexes.CharField(model_attr = 'Descripcion_partner')

site.register(Partners,PartnerIndex)

class EventosSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    Nombre_evento = indexes.CharField(model_attr = 'Nombre_evento')
    Descripcion_evento = indexes.CharField(model_attr = 'Descripcion_evento')
    
site.register(Eventos,EventosSearchIndex)

class ConferenciasSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    conferencia = indexes.CharField(model_attr = 'conferencia')
    
site.register(Conferencias,ConferenciasSearchIndex)

class LibrosSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    libro = indexes.CharField(model_attr = 'libro')
    editorial = indexes.CharField(model_attr = 'editorial')
    
site.register(Libros,LibrosSearchIndex)

class PapersSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    paper = indexes.CharField(model_attr = 'paper')
    tema = indexes.CharField(model_attr = 'tema')
    
site.register(Papers,PapersSearchIndex)

class ReporteSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    reporte = indexes.CharField(model_attr = 'reporte')
    
site.register(ReportesTecnicos,ReporteSearchIndex)

class RevistasSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    revista = indexes.CharField(model_attr = 'revista')
    
site.register(Revistas,RevistasSearchIndex)

class TesisSearchIndex(RealTimeSearchIndex) :
    text = indexes.CharField(document = True, use_template = True)
    publicacion = indexes.CharField(model_attr = 'publicacion')
    titulo_tesis = indexes.CharField(model_attr = 'titulo_tesis')
    tipo_tesis = indexes.CharField(model_attr = 'tipo_tesis')
    institucion = indexes.CharField(model_attr = 'institucion')
    
site.register(Tesis,TesisSearchIndex)
